/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.lardocelar.core;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Leandro
 */
public class Captador {
    private String macAddress;
    private byte[] ipAddress;
    private int port;
    private SituacaoCaptador situacao;
    private ComunicacaoCaptador comunicacao;

    public Captador()
    {
        comunicacao = ComunicacaoCaptadorFactory.buildComunicacaoCaptador("01");
    }
    
    /**
     * @return the ipAddress
     */
    public byte[] getIpAddress() {
        return ipAddress;
    }

    /**
     * @param ipAddress the ipAddress to set
     */
    public void setIpAddress(byte[] ipAddress) {
        this.ipAddress = ipAddress;
    }

    /**
     * @return the port
     */
    public int getPort() {
        return port;
    }

    /**
     * @param port the port to set
     */
    public void setPort(int port) {
        this.port = port;
    }

    /**
     * @return the situacao
     */
    public SituacaoCaptador getSituacao() {
        //TODO:Buscar no banco
        return situacao;
    }

    /**
     * @param situacao the situacao to set
     */
    public void AlterarSituacao(SituacaoCaptador situacao) {
        //Falta Banco de Dados
        this.situacao = situacao;
    }

    /**
     * @return the comunicacao
     */
    public ComunicacaoCaptador getComunicacao() {
        return comunicacao;
    }

    /**
     * @return the macAddress
     */
    public String getMacAddress() {
        return macAddress;
    }

    /**
     * @param macAddress the macAddress to set
     */
    public void setMacAddress(String macAddress) {
        this.macAddress = macAddress;
    }
    
    public void reiniciar(){
//        try {
//            Random gerador = new Random();
//            Thread.sleep(gerador.nextInt(1001)); //1000 é 1 segundo
//        } catch (InterruptedException ex) {
//            Logger.getLogger(Captador.class.getName()).log(Level.SEVERE, null, ex);
//        }
    }
    public static List<Captador> listTodosCaptadores(){
        List<Captador> captadores = new ArrayList<>();
//        Captador captador1 = new Captador();
//        captador1.setIpAddress(IpUtil.parseStringToBytes("10.1.12.210"));
//        captadores.add(captador1);
//        Captador captador2 = new Captador();
//        captador2.setIpAddress(IpUtil.parseStringToBytes("10.1.12.211"));
//        captadores.add(captador2);
//        Captador captador3 = new Captador();
//        captador3.setIpAddress(IpUtil.parseStringToBytes("10.1.12.212"));
//        captadores.add(captador3);
        for(int i = 0 ; i < 20; i++){ 
            captadores.add(new Captador()); 
            captadores.get(i).setIpAddress(IpUtil.parseStringToBytes("10.1.12."+(210+i)));
        }
        return captadores;
    }
}
